/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.sql.Connection;
import java.util.Collection;
import modelo.Ajuste;
import modelo.DetalleAjuste;
import modelo.Productos;

/**
 *
 * @author Felipe
 */
public class AjusteBean {

    private ProductoDAO prodDao;
    private DetalleAjusteDAO detAjuDao;
    private AjusteDAO ajuDao;

    public AjusteBean(Connection conexion) {
        prodDao = new ProductoDAO();
        prodDao.setConexion(conexion);
        detAjuDao = new DetalleAjusteDAO();
        detAjuDao.setConexion(conexion);
        ajuDao = new AjusteDAO();
        ajuDao.setConexion(conexion);
    }

    public void realizarAjuste(AjusteDetalleComposite adc, int rutUsuario) {
        adc.getAjuste().setCodAjuste(ajuDao.getCodAju());
        int codAju = adc.getAjuste().getCodAjuste();
        if (adc.getAjuste().isTipo()) {
            for (DetalleAjuste de : adc.getListaDetalle()) {
                de.setCodAjuste(codAju);
                detAjuDao.Insertar(de);
                this.sumarStock(de.getCodProducto(), de.getCantidad());
            }
        } else {
            for (DetalleAjuste de : adc.getListaDetalle()) {
                de.setCodAjuste(codAju);
                detAjuDao.Insertar(de);
                this.restarStock(de.getCodProducto(), de.getCantidad());
            }
        }

        ajuDao.Insertar(adc.getAjuste());

    }

    private void restarStock(String codProducto, int cantidad) {
        Productos registro = prodDao.buscar(codProducto);
        prodDao.cambiarStock(codProducto, registro.getStockActual() - cantidad);
    }

    private void sumarStock(String codProducto, int cantidad) {
        Productos registro = prodDao.buscar(codProducto);
        prodDao.cambiarStock(codProducto, registro.getStockActual() + cantidad);
    }

    public Collection<Ajuste> buscarTodos() {

        Collection<Ajuste> ajus = ajuDao.buscarTodos();

        return ajus;

    }

    public Ajuste BuscarPorCodAju(int codAju) {
        Ajuste aju = ajuDao.buscarPorCod(codAju);
        return aju;
    }

    public boolean eliminar(int codigo) {
    boolean exito = false;
    
    exito = ajuDao.eliminar(codigo);
    
    return exito;
        
    }

    
}
